#ifndef __Clazz_h__
#define __Clazz_h__

#include <QtCore>
#include "XMLSerializable.h"

class Attribute;
class Method;

class Clazz: public XMLSerializable
{
        private:
            QString className;
            QVector<Clazz*> subtypes;
            QVector<Clazz*> innerClasses;
            QVector<Attribute*> attributes;
            QVector<Method*> methods;
            QString stereotype;

        public:
            Clazz();
            Clazz(QString);

            QString getClassName();
            void setClassName(QString);

            QVector<Clazz*> getSubtypes();
            void setSubtypes(QVector<Clazz*>);

            QVector<Clazz*> getInnerClasses();
            void setInnerClasses(QVector<Clazz*>);

            QVector<Attribute*> getAttributes();
            void setAttributes(QVector<Attribute*>);

            QVector<Method*> getMethods();
            void setMethods(QVector<Method*>);

            QString getStereotype();
            void setStereotype(QString);

            QString toXml();
};

#endif
